package com.sptpc.demo1.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.Type;
import org.joda.money.Money;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;


@Entity//定义该类将会成为被JPA管理的实体，会映射到指定的数据库表
@Table(name = "t_order")//指定表名为t_order

@Data
@NoArgsConstructor
@AllArgsConstructor //创建全参构造函数
@Builder
public class Order {
    @Id//标志主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)//设置为自增字段
    public Integer id; // 编号

    @Column(updatable = false)//时间不会被更新
    @CreationTimestamp//不生成值时会插入默认值当前时间
    private LocalDateTime createTime;//时间

    @Column(name = "customer")//指定表中的字段名。如果与数据库字段名相同可省略不写
    public String customer;//客户姓名

    @Type(type = "org.jadira.usertype.moneyandcurrency.joda.PersistentMoneyAmount",
            parameters = {@org.hibernate.annotations.Parameter(name = "currencyCode", value = "CNY")})//实现金额的转换。
    @Column(name = "price")//指定表中的字段名。如果与数据库字段名相同可省略不写
    public Money price;//价格

    @Column(name = "state")//指定表中的字段名。如果与数据库字段名相同可省略不写
    public Integer state;//订单状态   0下订单 1

    @ManyToMany//指定多对多关系
    @JoinTable(name = "t_order_drink", joinColumns = {@JoinColumn(name = "drink_order_id")})
    public List<Drink> items;//购买商品编号
}


